package com.lqian.simplestructure.sorted;

/**
 * @author：Melody_LQ
 * @time：2022/7/20 4:34 下午
 */
public class YanghuiTriangle {
    private static  volatile int number = 1;


    public static void main(String[] args) {
        int len = 11;

        int[][] nums = new int[len][];
        // init row --> 10,but every row's element is dramatic!
        //init arr
        for (int i = 0; i <len ; i++)
        {
            //n row --> n datas
            nums[i] = new int[i+1];
        }



        //rule ：nums[3][2] = nums[2][1]+ nums[2][2]
        for (int i = 0; i <len ; i++) {
            for (int j = 0; j <nums[i].length ; j++) {
                // first element = 1 & last element = 1;
                if (j == 0 || j ==nums[i].length -1 ){
                    nums[i][j] = 1;
                }else {
                    nums[i][j] = nums[i-1][j-1] + nums[i-1][j];
                }
            }
        }
//
//        for (int i = 0; i <nums.length ; i++) {
//            for (int j = 0; j <nums[i].length; j++) {
//                System.out.print(nums[i][j]+"\t");
//            }
//            System.out.println();
//        }

        int num = nums[nums.length - 1][(nums.length) / 2];

        System.out.println("打印的行数:   " + nums.length);

        int count = 0;

        while (num >= 1) {
            num /= 10;
            count++;
        }
        for (int i = 0; i < nums.length; i++) {
            System.out.format("%" + ((nums.length - i)*count) + "s", "");
            for (int j = 0; j < nums[i].length; j++) {
                System.out.format("%-"+count+"d",nums[i][j]);
                System.out.format("%-"+count+"s","");
            }
            System.out.println();
        }

        int[] x ,y[] = new int[3][];
        int[][] arr = new int[3][];
       x = new int[0];
//        x[0] = y;
//        y[0]=x;
//        y[0][0] =x;
//        x[0][0] =y;
//        y[0][0] =x[0];
//        x = y;


        System.out.format("%-4d",3); //'-'    在最小宽度内左对齐，不可以与“用0填充”同时使用
        /**
         * '-'    在最小宽度内左对齐，不可以与“用0填充”同时使用
         * '#'    只适用于8进制和16进制，8进制时在结果前面增加一个0，16进制时在结果前面增加0x
         * '+'    结果总是包括一个符号（一般情况下只适用于10进制，若对象为BigInteger才可以用于8进制和16进制）
         * '  '    正值前加空格，负值前加负号（一般情况下只适用于10进制，若对象为BigInteger才可以用于8进制和16进制）
         * '0'    结果将用零来填充
         * ','    只适用于10进制，每3位数字之间用“，”分隔
         * '('    若参数是负数，则结果中不添加负号而是用圆括号把数字括起来（同‘+’具有同样的限制）
         */




    }


}
